"""
RedFire Framework Core Module
============================

核心模块，提供框架的基础功能和组件。
"""

from .config import RedFireSettings, load_settings, get_service_settings
from .container import RedFireContainer, create_service_container
from .security import SecurityService
from .database import DatabaseManager, Base
from .dependencies import (
    CurrentUserID, 
    AdminUser, 
    SuperUser,
    CurrentUserTokenData,
    OptionalCurrentUserID,
    get_current_user_id,
    get_current_user_token_data,
    require_roles,
    require_permissions
)
from .exceptions import (
    RedFireException,
    ConfigurationError,
    ServiceError,
    DatabaseError,
    AuthenticationError,
    AuthorizationError,
    ValidationError,
    CacheError,
    EventError,
    UserNotFoundException,
    InvalidCredentialsError,
    UserAlreadyExistsException,
    ValidationException
)

__all__ = [
    # 配置管理
    "RedFireSettings",
    "load_settings",
    "get_service_settings",
    
    # 容器管理
    "RedFireContainer",
    "create_service_container",
    
    # 核心服务
    "SecurityService",
    "DatabaseManager",
    "Base",
    
    # 依赖注入
    "CurrentUserID",
    "AdminUser", 
    "SuperUser",
    "CurrentUserTokenData",
    "OptionalCurrentUserID",
    "get_current_user_id",
    "get_current_user_token_data",
    "require_roles",
    "require_permissions",
    
    # 异常类
    "RedFireException",
    "ConfigurationError",
    "ServiceError",
    "DatabaseError",
    "AuthenticationError",
    "AuthorizationError",
    "ValidationError",
    "CacheError",
    "EventError",
    "UserNotFoundException",
    "InvalidCredentialsError",
    "UserAlreadyExistsException",
    "ValidationException"
]
